package com.ly.heart.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.domain.AjaxResult;
import com.ly.heart.domain.KingBomDetailEntity;
import com.ly.heart.domain.KingBomEntity;
import com.ly.heart.domain.dto.KingBomDto;
import com.ly.heart.domain.dto.KingBomProductDto;
import com.ly.heart.domain.vo.KingBomVo;

/**
 * BOM清单Service接口
 *
 * @author wutao
 * @date 2024-07-26
 */
public interface IKingBomService extends IService<KingBomEntity> {
    /**
     * 查询BOM清单
     *
     * @param id BOM清单ID
     * @return BOM清单
     */
    KingBomVo selectKingBomEntityById ( String id );

    AjaxResult queryList ( KingBomEntity kingBomEntity );

    /**
     * 查询BOM清单列表
     *
     * @param kingBomEntity BOM清单
     * @return BOM清单集合
     */
    AjaxResult selectKingBomEntityList ( KingBomEntity kingBomEntity );

    /**
     * BOM展开
     *
     * @param kingBomProductDto
     * @return
     */
    List<KingBomDetailEntity> expand ( KingBomProductDto kingBomProductDto );

    /**
     * 新增BOM清单
     *
     * @param kingBomDto BOM清单
     * @return 结果
     */
    AjaxResult draft ( KingBomDto kingBomDto );

    AjaxResult submit ( KingBomEntity kingBomEntity );

    /**
     * 修改BOM清单
     *
     * @param kingBomDto BOM清单
     * @return 结果
     */
    AjaxResult updateKingBomEntity (KingBomDto kingBomDto);

    AjaxResult updateByDelete ( String[] ids );

    /**
     * 批量删除BOM清单
     *
     * @param ids 需要删除的BOM清单ID
     * @return 结果
     */
    int deleteKingBomEntityByIds ( String[] ids );

    /**
     * 删除BOM清单信息
     *
     * @param id BOM清单ID
     * @return 结果
     */
    int deleteKingBomEntityById ( String id );
}
